Method and system for distributing outbound telephone calls

ABSTRACT

A method and system is provided for the distribution of outbound telephone calls. This method and system includes dialing devices receiving call records and providing telephone calls to one or more agents. Interfaced with the dialing device is a distribution module including pools and queues. The distribution module places the call records into the pools and transfers less than all of the call records to the queues to allow for calling by the dialing devices at peak efficiency. The distribution module transfers the queues to the dialing devices so that the dialing device can place telephone calls. The distribution module monitors the queues to determine when to send additional call records to the queues. In addition, distribution module monitors the results of the call records and updates the call records in the pools so that call records with unsuccessful outcomes can be safely called again later in the day.

RELATED PATENT APPLICATION

This application claims the benefit of U.S. Provisional Application No.60/217,292 filed on Jul. 11, 2000 and entitled “Method and System forDistributing Outbound Telephone Calls.”

This application is a continuation of U.S. patent application Ser. No.11/561,515, filed Nov. 20, 2006, now U.S. Pat. No. 7,239,692 andentitled “Method and System for Distributing Outbound Telephone Calls,”which is a continuation of U.S. patent application Ser. No. 09/901,749,filed on Jul. 9, 2001, now U.S. Pat. No. 7,142,662 and entitled “Methodand System for Distributing Outbound Telephone Calls,” which claims thebenefit of U.S. Provisional Patent Application 60/217,292, filed Jul.11, 2000, and entitled “Method and System for Distributing OutboundTelephone Calls.”

This application is a reissue of application Ser. No. 11/758,713, U.S.Pat. No. 7,502,460, which is a continuation of application Ser. No.11/561,515, filed on Nov. 20, 2006 now U.S. Pat. No. 7,239,692 entitled“Method and System for Distributing Outbound Telephone Calls” and namingRichard Rodenbusch and Daniel N. Duncan as inventors.

TECHNICAL FIELD OF THE INVENTION

This invention relates to the field of telephony and computer networks,and more particularly to a system and method for distributing outboundtelephone calls.

BACKGROUND OF THE INVENTION

Telephone call centers represent the front line for customer service,marketing operations, and debt collection for many businesses. Typicalcall centers receive or make hundreds of telephone calls per day withthe aid of automated telephony equipment. For instance, predictivedialers such as the MOSAIX Predictive Dialing System (“PDS”)manufactured by Avaya Incorporated automatically dial outbound telephonecalls to contact individuals and then transfer the contacted individualsto agents so the agent can talk with the individual.

Dialing devices such as predictive dialers save time for the agentplacing the call because the dialing device and not the agent dials thetelephone number and agents' time is not wasted with unanswered calls oranswering machines. Predictive dialers also spread the outboundtelephone calls evenly among all the agents working from the dialingdevice so that the agents share the workload equally and no agents sitidle while others have too many telephone calls to place.

Many businesses are increasing their marketing efforts, customer serviceprograms, and bad debt collection efforts by having multiple telephonecall centers or multiple dialing devices located at a single call centerto serve more customers. Typically, when businesses have multiple callcenters, the call centers are located in different geographic locationswhich makes coordination of dialing strategies difficult.

Thus businesses generally manage call centers individually, withseparate staffing, calling strategies, goals, and functions. Generally,a calling list is divided into as many parts as there are call centersor dialers with each call center receiving its own section of thecalling list. Although this segmentation distributes work, coordinationof strategy for outbound calling is difficult since each call center isresponsible for its own section of the calling list and has no knowledgeof the other call centers' progression with their own calling lists. Forinstance, if a call center goes down and cannot make outbound telephonecalls, the other call centers cannot typically address the downed callcenter's calling list goals and priorities because the other callcenters do not have access to the calling list including the telephonenumbers actually called.

A similar problem occurs with a single call center having multipledialers. Calling list segmentation typically occurs at a host level,where each dialing device is assigned a portion of the calling list. Ahost downloads the segmented calling list to the individual dialingdevices. If one dialing device fails, the other dialing devices do notknow the status of telephone numbers in the failed dialing device'ssegment.

Another difficulty associated with multiple call centers or single callcenters with multiple dialing devices is inefficient use of dialingdevices due to small lists of call records. Dialing devices functionmost efficiently when processing large volumes of accounts in callrecords and utilizing a certain number of agents. However, accounts areoften logically grouped into smaller groups so that the dialing devicesare not at an optimal performance level.

SUMMARY OF THE INVENTION

Therefore, a need has arisen for a system and method which coordinatesoutbound call attempts between plural dialing devices.

A further need has arisen for a system and method which transfers callrecords seamlessly between multiple call centers and dialing deviceslocated within a single call center.

A further need has arisen for a system and method which efficientlyoperates plural dialing devices with sets of generally small accounts ofcall records.

In accordance with the present invention, a system and method fordistributing outbound call records is provided which substantiallyeliminates or reduces disadvantages and problems associated withpreviously developed systems and methods for distributing outboundtelephone calls. A distribution module distributes outbound calls forprocessing by one or more than one dialing device to level the call loadacross the dialing devices by transferring call records and trackingcall attempt results for the dialing devices on a real-time basis.

More specifically, distribution of outbound call attempts between pluraldialing devices is accomplished by a distribution module interfaced withthe dialing devices. The distribution module controls the flow of callrecords to the dialing devices, arranges the call records so as todetermine the order the dialing devices provide telephone calls to theagents, and monitors the call attempts of the dialing devices.

In one embodiment, the dialing device transfers call records to thedistribution module. The distribution module organizes the call recordsinto a plurality of pools. The distribution module transfers less thanall of the call records from the pools to a plurality of queues. Thedistribution module transfers the queues containing the call records tothe dialing devices after each queue has been assigned to a specificdialing device. The queues contain enough call records to ensure thatthe dialing devices operate at peak efficiency. As the dialing devicecalls the call records in the queues, the distribution module transfersadditional call records from the pools to the queues.

The distribution module monitors the calling status of the queues as acalling campaign to determine when to transfer additional call recordsto the queues. The distribution module spreads out the calling loadamong the plural dialing devices and enables the dialing devices toreattempt call records where the first call was unsuccessful withoutrisk of reattempting successful contacts.

The present invention provides a number of important technicaladvantages. One important technical advantage is the coordination ofoutbound call records to plural dialing devices that are co-located orlocated in geographically distributed call centers. This allows abusiness to optimize calling resources with a unified strategy.

Another important technical advantage of the present invention is thatcall records and call attempt results are coordinated through thedistribution module. Therefore, unsuccessful call attempts are availablefor redistribution without stopping the current calling campaign so thatlater in the day the same or a different dialing device can attempt tocall the same call record.

Another important technical advantage of the present invention is thatit allows for seamless transfers of call records between multipledialing devices. If one of the dialing devices has a problem, thedistribution module transfers call records from that dialing device toone or more other dialing devices. Seamless transfers also improveefficiency where dialing devices operate at different rates. Callrecords are simply transferred to the dialing device having greatercapacity. Thus, the ability to seamlessly transfer call records amongthe dialing devices improves productivity, list penetration, and callresults.

Another important technical advantage of the present invention is thatit allows the leveraging of resources across multiple dialing devices.The distribution module monitors and manages calling campaigns acrossthe entire enterprise of dialing devices. The distribution moduleadjusts to many different calling situations and dynamically assignswork on an as-needed basis without stopping the calling campaign. Basedon call attempt results, time of day, prior call results, or user input,the distribution module can take an active set of accounts and changethe call order of the call records without shutting down the dialingdevices or starting a new job.

Another important technical advantage of the present invention is thatit allows for a dialing device to efficiently operate on small groups ofcalling records. The system and method allows a business to take smallgroups of accounts and pool them together to create a larger callingcampaign on the dialing devices. Therefore, the dialing device remainsactive and efficient.

Another technical advantage of the present invention is that is allowsskill-based routing of call records. This allows for the efficient useof constrained resources across call centers. The system can beconfigured to route call records to the agents most likely to generate afavorable outcome to the call while ensuring that all agents havesufficient calls to work efficiently.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and theadvantages thereof, reference is now made to the following descriptiontaken in conjunction with the accompanying drawings in which likereference numbers indicate like features, and wherein:

FIG. 1 depicts a block diagram of plural dialing devices interfaced witha distribution module;

FIG. 2 illustrates a block diagram of another embodiment of the presentinvention employing two distribution modules;

FIG. 3 depicts a flow diagram of a method for distribution outboundtelephone calls; and

FIGS. 4a and 4b illustrate a flow diagram for the population of thepools and queues with call records.

DETAILED DESCRIPTION OF THE INVENTION

Preferred embodiments of the present invention are illustrated in thefigures, like numeral being used to refer like and corresponding partsof the various drawings.

Under previous systems and methods for distributing outbound telephonecalls, the redistribution of call records among the dialing devices orthe changing of the call order of the call records required the shuttingdown of the dialing devices or starting a new job on the dialing device.The present invention allows the management of call records across oneor more than one dialing device which allows for the leveraging ofresources across multiple dialing devices. The enterprise managementallows for dynamically reindexing or changing the order of the callrecords on an as-needed basis, changing the composition of call recordswithin the pools, and redistribution of unsuccessful call attemptswithout having to shut down the dialing devices or start a new job onthe dialing device.

FIG. 1 depicts a block diagram for an outbound distribution system 100for distributing outbound telephone calls. A distribution module 102interfaces with a first call center 104a and a second call center 104n.For simplicity, reference is made hereafter to “call center 104” in ageneric sense to refer to any instance of a call center, 104a-104n.System 100 allows call centers 104a and 104n to operate as a singlegroup of resources rather than two decentralized units, withdistribution module 102 controlling the strategy, workload, and callingefforts for call centers 104 from a single, central location. Inalternative embodiments, distribution module 102 interfaces withmultiple dialing devices at one or more call centers, or one dialingdevice located in one call center.

Call centers 104 are geographically distributed, each having one or moredialing devices that place telephone calls using information in the callrecords. Distribution module 102 operates on a SOLARIS, Linux, or an anyother appropriate operating system server and communicates with callcenters 104 via standardized communications links such as Ethernet, theInternet with protocols such as FTP, CORBA, API, and sockets overTCP/IP, asynchronous transfer mode (“ATM”), or any other appropriatecommunication link.

Call centers 104 each have one or more dialing devices 108 108a-108n.For simplicity, reference is made hereafter to “dialing devices 108” ina generic sense to refer to any instance of a dialing device 108a-108n.Dialing devices 108 are predictive dialers such as the MOSAIX PDSmanufactured by Avaya Incorporated or other appropriate predictivedialers. In the embodiment shown in FIG. 1, interfaced to dialing device108a in call center 104a are three agents 110a, 110b, and 110c withdialing device 108n of call center 104n also having three agents 110d,110e, and 110f interfaced to it. For simplicity, reference is madehereafter to “agents 110” in a generic sense to refer to any instance110a-110f of an agent. Agents 110 are workstations where operators oragents speak to the individuals whose telephone numbers are called bydialing devices 108.

Dialing device 108 dials telephone numbers extracted from the callrecords. If an individual answers the telephone, dialing device 108transfers the telephone call to one of agents 110 so that the agent canspeak with the individual. Dialing devices 108 therefore improvetelephone calling efficiency by dialing the telephone number andtransferring the call to an agent only if an individual answers thetelephone.

System 100 functions by first having distribution module 102 acquire thecall records that dialing devices 108 will call. There are severaldifferent ways that distribution module 102 acquires the call records.

For instance, host 112, which is associated with dialing devices 108,stores raw call records. The raw call records contain informationincluding telephone number, account number, individual name and address,and any other appropriate personal information. For example, a raw callrecord for Joe Smith includes Joe Smith's telephone number, mailingaddress, account status, account number, account passwords, gender,marital status, number of children, employment status, and yearlyincome.

Host 112 transfers the raw call records for that day along path 114a tocall center 104a and dialing device 108a and along path 114b to callcenter 104n and dialing device 108n. Distribution module 102 contactsdialing device 108a within call center 104a via path 116a and dialingdevice 108n within call center 104n via path 116b. Distribution module102 downloads from dialing devices 108 to call record database 118 thecall records. The call records may contain some but not all of theinformation from the raw call records. Downloading less than all of theinformation from the raw call records saves bandwidth and allows forefficient operation of distribution module 102 because it handlessmaller amounts of data. For instance, distribution module 102 downloadsas the call record an individual's name, telephone number, and accountnumber. So the call record for Joe Smith contains Joe Smith's name, histelephone number, and account number.

In an alternative embodiment, host 112 stores the raw call records.Instead of transferring the raw call records to dialing devices 108,distribution module 102 downloads the call records from host 112 to callrecord database 118 via path 120.

Alternatively, dialing devices 108 store the raw call records.Therefore, distribution module 102 contacts call center 104a and dialingdevice 108a via path 116a and call center 104n and dialing device 108nvia path 116b to download the call records to call record database 118.

Scheduling module 122 operates to develop and provide optimal callingstrategies for the call records including resource optimization,automated statistical modeling and flexible strategy management. Forinstance, one such scheduling module 122 is described in U.S. Pat. No.5,802,161, entitled “Method and System for Optimized Scheduling” issuedSep. 1, 1998, and is hereby incorporated by reference.

The integration of scheduling module 122 is not required for theoperation of distribution module 102 but it affects how distributionmodule 102 downloads the call records and what information is containedin the call records. For instance, host 112 transfers the raw callrecords to call center 104a and dialing device 108a via path 114a andcall center 104n and dialing device 108n via path 114b. Schedulingmodule 122 downloads from dialing device 108a in call center 104a viapath 124a and from dialing device 108n in call center 104n via path 124bthe raw call records. Scheduling module 122 develops call schedules forthe raw call records. Distribution module 102 downloads the call recordsincluding the call schedule from scheduling module 122 via path 124c andstores the call records in call record database 118.

Alternative embodiments also employ scheduling module 122 in thedelivery of call records to distribution module 102. Scheduling module122 downloads the raw call records from host 112 via path 126. Asbefore, scheduling module 122 adds call schedules to the raw callrecords before distribution module 102 downloads the call records fromscheduling module 122 via path 124c to call record database 118.

Once distribution module 102 stores the call records in call recorddatabase 118, distribution module 102 organizes and transfers the callrecords from call record database 118 to pools 128 128a, 128b, and/or128c, which are interfaced with distribution module 102. For simplicity,reference is made hereafter to “pool 128” in a generic sense to refer toany instance of a pool 128a-128c. The pools are sets of callable callrecords specified by distribution module 102. Each pool 128 represents aspecific and ordered group of call records. In the embodiment shown inFIG. 1, there are three pools 128a, 128b, and 128c. In alternativeembodiments there can be more than three or less than three pools.

Distribution module 102 then transfers less than all of the call recordsfrom pools 128 to queues 130 130a, 130b, 130c, and 130d. For simplicity,reference is made hereafter to “queue 130” in a generic sense to referto any instance of a queue 130a-130d. Interfaced with pools 128 arequeues 130a, 130b, 130c, and 130d. A queue is a set of rules forselecting call records from pools having the necessary and sufficientinformation describing the exact method of transferring call records todialing devices 108 and any call records assigned to but not yettransferred to dialing devices 108 for dialing devices 108 to call.Distribution module 102 attaches each queue 130 to a particular dialingdevice 108 and monitors each dialing device. As necessary, distributionmodule 102 transfers call records from pools 128 in accordance with theconfiguration of queues 130 which includes selection rules, time of day,time of week, number of calls completed, and number of call recordssent. Queues 130 then transfer the call records to their assigneddialing devices 108. For instance, distribution module 102 transferscall records according to the configuration of queues 130a and 130b todialing device 108a of call center 104a and according to theconfiguration of queues 130c and 130d to dialing device 108n of callcenter 104n.

In addition, each queue 130 is associated with a single campaign for thedialing device to which it is assigned. A campaign is an outbound jobcalling on dialing device 108 that can receive additional call recordsfor calling while the outbound calling job is active. Normally, acampaign on dialing device 108 continues to run until manually stopped.

Pools 128 can satisfy transfer requests for call records for one or morethan one queue 130. For example, pool 128a transfers call records toqueue 130a, pool 128b transfers call records to queues 130b and 130c,and pool 128c transfers call records to queue 130d. In addition,distribution module 102 can change the queues which request call recordsfrom pools 128 throughout the day and in the middle of outbound callingcampaigns. For instance, if dialing device 108n located in call center104n calls all the call records in pool 128c, then distribution module102 can request that pools 128a and 128b transfer call records to queue130d.

Distribution module 102 transfers the call records to pools 128,transfers less than all of the call records from pools 128 to queues130, and transfers queues 130 to dialing devices 108 before dialingdevices 108 begin their daily calling routines. At the beginning of theday, distribution module 102 transfers enough call records from pools128 to queues 130 to allow for dialing devices 108 to place calls forfifteen, thirty, sixty minutes, or an appropriate amount of time toplace calls. Distribution module 102 monitors the calls placed bydialing devices 108 as well as the number of call records remaining tobe called to determine how busy dialing devices 108 are and when and howmany additional call records to transfer from pools 128 to queues 130.The monitoring of queues 130 and the transferring of additional callrecords from pools 128 to queues 130 allows for real-time movement ofcall records from distribution module 102 to dialing devices 108throughout the day. For instance, as soon as dialing device 108a isabout to finish calling the call records in the campaign assigned toqueue 130a, distribution module 102 transfers additional call recordsfrom pool 128a to queue 130a so that dialing device 108a maintains asteady and level flow of work.

Dialing devices 108 also track the call attempt results of every callplaced by dialing devices 108. The call attempt results include whetheror not a call resulted in a right party contact, a wrong party contact,no answer, or an answering machine. For example, the goal of a callrecord for Joe Smith is to talk with Joe Smith. If agent 110 speaks withJoe Smith, that is a right party contact and a successful call attemptresult. If Joe's babysitter answers the phone and Joe is not home, thatis a wrong party contact and an unsuccessful call attempt result. If noone answers the phone or an answering machine answers the phone, that isan unsuccessful call attempt result since the desired party was notcontacted. Therefore throughout the day, distribution module 102 queriesdialing devices 108 for call attempt results and uploads the callattempts results. If a call attempt result is unsuccessful, thendistribution module 102 updates the call record in pools 128 so that adialing device 108 may call the call record again at a later time in theday.

An advantage to system 100 is that distribution module 102 controls thetransfer of the call records which results in a level work flow fordialing devices 108. To enable better work flow control, queues 130include selection rules that determine how distribution module 102transfers call records from pools 128 to queues 130. The selection rulesinclude priority rules and percentage rules which can be modified on anas needed basis.

Priority rules result in distribution module 102 transferring callrecords from pools 128 to queues 130 based upon an assigned priority foreach pool 128. For example, queue 130a receives call records from pools128a and 128b with pool 128a having priority over pool 128b. Queue 130breceives call records from pools 128a and 128b with pool 128b havingpriority over pool 128a. Assume that pool 128a arrives at 8:00 AM whilepool 128b arrives at 9:00 AM. Initially, both queues 130a and 130breceive call records from pool 128a. At 9:00 AM when pool 128b arrives,queue 130a continues to receive call records from pool 128a while queue130b receives call records from pool 128b.

Percentage rules result in distribution module 102 simultaneouslytransferring call records from pools 128 to queues 130. For example,queue 130c has a percentage configuration with pools 128b and 128c andqueue 130d has a percentage configuration with pools 128b and 128c. Inthis configuration, queue 130c and 130d receive call recordssimultaneously from pools 128b and 128c. With pool 128b arriving at 8:00AM and pool 128c arriving at 9:00 AM, at 8:00 AM both queues 130c and130d receive call records from pool 128b. At 9:00 AM, queues 130c and130d alternatively receive call records from pools 128b and 128c. Thepercentages are variable for instance so that queue 130c receives 80% ofits call records from pool 128b and 20% of its call records from pool128c while queue 130d receives 60% of its call records from pool 128band 40% of its call records from pool 128c.

The selection rules can also incorporate pool quotas which are limitsset on each pool controlling a maximum activity level such as number ofrecords transferred, number of successful call attempts, and otherappropriate indicators of call record activity. When distribution module102 transfers call records to pools 128, distribution module 102 canalso set quotas on how many call records dialing devices 108 will callfrom pools 128. In the percentage rule example above, distributionmodule 102 can place a quota on pool 128b. When dialing devices 108satisfy the quota for pool 128b, queues 130c and 130d no longer receivecall records from pool 128b and only receive call records from pool128c.

The selection rules can also be a combination of the percentage rulesand the priority rules. For example, queue 130b receives call recordsfrom all three pools 128a, 128b, and 128c. Queue 130b receives callrecords from pool 128b until dialing device 108a calls all the callrecords in pool 128b. At that time, queue 130b then alternately receivescall records from pools 128a and 128c. As with the percentage rulesabove, queue 130b can receive call records from pools 128a and 128c inany percentage breakdown. Therefore, pool 128b has priority over pools128a and 128c while pools 128a and 128c transfer call records usingpercentage rules.

In addition, these selection rules allow for skills-based routingbetween pools 128. For example, distribution module 102 allows pool 128ato initially transfer call records to queue 130a and pool 128c toinitially transfer call records to queue 130d. If pool 128c becomesdepleted and has no more call records to transfer to queue 130d, thenpool 128a can begin transferring call records to both queues 130a and130d. This allows distribution module 102 to transfer call records foreasy to moderate difficulty customers to the best agents while the lessskilled agents work the more difficult customers. And once the easy tomoderate difficulty customers call records are depleted, the best agentscan begin working the more difficult customer call records.

In case of a communication, dialing device, or call center outage,system 100 employs contingency modules 132 for each dialing device 108.Contingency modules 132 are associated with dialing devices 108.Contingency modules 132 secure the call records within their respectivedialing devices 108 in case of an outage. Before distribution module 102transfers the call records to pools 128, distribution module 102 createscall record accounts for dialing devices 108, locks the call recordaccounts to dialing devices 108, creates a contingency download file,and stores the contingency download file in contingency modules 132.Distribution module 102 updates the contingency download file with callattempt results which prevents dialing devices 108 from calling callrecords already successfully called.

Users of system 100 control the functionality of distribution module 102through a user interface. The user interface is shown as onlineinterface 134 in FIG. 1 but can be any appropriate type of userinterface. Online interface 134 is a graphical user,platform-independent, password-protected World Wide Web (“WWW”)browser-based interface. Users use online interface 134 to control thesettings for distribution module 102 including application of theselection rules, number of pools, and number of call records toinitially transfer to the queues, generate reports, and create andmodify enterprise parameters. Users access online interface 134 by usingbrowser 136 to access Internet 138 to reach a specific web address. Onceat the specific web address, the users enter the appropriate passwordsto gain access to online interface 134.

Although the embodiment shown in FIG. 1 contains more than one dialingdevice, in alternative embodiments distribution module 102 interfaceswith a single dialing device. A single dialing device interfacing withdistribution module 102 allows for variable control over similar listsof call records. For instance, call records may be divided intogeographies such as states or time zones. Calling can be stoppedautomatically by distribution module 102 when a quota is reached for aparticular geography. Distribution module 102 presents the similar listsof call records for different geographies as different pools but thesimilar lists of call records for different geographies would representone calling job within the single dialing device.

FIG. 2 illustrates a block diagram of system 150 employing twodistribution modules in an alternative embodiment of the presentinvention. System 100 as shown in FIG. 2 is shown with less detail thanin FIG. 1.

System 150 employs two distribution modules 102 and 152. Distributionmodule 152 is associated with two call centers 154 and 156. Call centers154 and 156 each have one dialing device 158. Distribution module 152provides the same functionality to call centers 154 and 156 thatdistribution module 102 provides to call centers 104 as described abovein the discussion regarding FIG. 1.

Distribution module 152 provides redundancy and prevents distributionmodule 102 from being overburdened by too many dialing devices.Distribution module 102 functions effectively with more than one dialingdevice interfaced with it but performance and efficiency suffers whentoo many dialing devices are attached. Therefore, additionaldistribution module 152 allows for both it and distribution module 102to achieve optimal performance and efficiency when adding additionalcall centers 154 and 156 with additional dialing devices 158.

In system 150, distribution modules 102 and 152 are in communicationwith each other including communicating which call records are in thepools and the call attempt results. Distribution modules 102 and 152transfer call records and call attempt results between themselves justas distribution module 102 transfers call records and call attemptresults between dialing devices 108. Therefore, if dialing devices 158are idle while dialing devices 108 are overburdened, distribution module102 transfers call records to distribution module 152 for dialingdevices 158 to call. In addition, if distribution module 152 experiencesan outage, distribution module 102 transfers the high priority callsfrom distribution module 152 to dialing devices 108 without worry ofcalling the same call record a second time in the same day when thefirst call resulted in a right party contact.

Referring now to FIG. 3, a flow diagram depicts a process fordistributing outbound call records. The process begins at step 170 withthe transfer of call records from host 112, dialing devices 108, orscheduling module 122 to distribution module 102. In step 172,distribution module 102 organizes and arranges the call records intopools 128. Based upon user inputs distribution module 102 assigns queues130 to specific dialing devices in step 174.

In step 176, distribution module 102 checks to see if the selectionrules are to be applied to pools 128 and queues 130. If the selectionroles are not to be applied, then the process continues in step 178. Ifselection rules are to be applied, then in step 180 distribution module102 determines if priority, percentage, or quota rules are applied topools 128. If priority rules are applied, then in step 182 distributionmodule 102 applies the priority rules to pools 128 and queues 130 andthe process continues on to step 178. If percentage rules are applied,then in step 184 distribution module 102 applies the percentage rules topools 128 and queues 130 and the process continues in step 178. If thequota rules are applied, then in step 186 distribution module 102applies the quotas to pools 128 and queues 130 and the process continuesto step 178.

Distribution module 102 then delivers enough call records to queues 130for dialing devices 108 to place telephone calls for fifteen, thirty,sixty minutes, or an appropriate amount of time to place calls in step178. In step 190, distribution module 102 locks the call recordsassigned to dialing devices 108 and creates a contingency file specificfor each dialing device 108 in step 192.

In step 194, distribution module 102 transfers queues 130 containing theset number of call records to dialing devices 108. Every few minutes,distribution module 102 uploads call record statistics from each queue130 in step 196. Call record statistics include such information as howmany call records remain to be called and the rate at which dialingdevices 108 are depleting the call records in queues 130. In addition touploading call record statistics, in step 198 distribution module 102also uploads call attempt results. Call attempt results include whethera right party contact or wrong party contact was made or whether ananswering machine was reached when dialing devices 108 place a telephonecall.

In step 202 distribution module 102 updates the contingency file withthe call attempt results specific for dialing devices 108. In step 204,distribution module 102 uses the call record statistics gathered in step196 to analyze the number of call records remaining to be called and thedepletion rate of the call records within queues 130. Based upon thecall attempt results, distribution module 102 re-presents to pools 128call records where the first attempt to make a right party contact wasunsuccessful so that the call record can be called later in the day instep 206. In addition, the call record can be made unavailable for theremainder of the day if a right party contact was made.

Based upon the call record statistics, distribution module 102determines in step 208 if more call records need to be sent from pools128 to queues 130. If more call records are needed, then in step 210distribution module 102 sends additional call records from pools 128 toqueues 130 and the process repeats beginning with step 176 untilmanually stopped. But if distribution module 102 determines that noadditional call records need to be sent from pools 128 to queues 130 instep 208, then the process repeats beginning with step 196 untilmanually stopped or until there are no call records remaining to becalled.

FIGS. 4a and 4b illustrate a flow diagram for the population of pools128 and queues 130 with call records. The call records in FIGS. 4a and4b include scheduling information provided by scheduling module 122.

Referring to FIG. 4a, In step 222 the call records pass throughscheduling module 122 from either dialing devices 108 or host 112.Scheduling module 122 adds call scheduling information to each callrecord as it passes through it. In step 224, scheduling module 122transfers the call records containing call scheduling information tocall record database 118 within distribution module 102. Distributionmodule 102 then arranges the call records into pools 128 in step 226.When distribution module 102 places the call records into pools 128,distribution module 102 examines each call record to determine how toextract the scheduling information, account number and telephone numberfrom the call record. In addition, distribution module 102 flags anycall records where the scheduling information or telephone number isstripped from the end of the call record before placing it in the pools128.

In step 228, distribution module 102 splits the call records into aplurality of pools 128. Each pool 128 holds the call record as a datastring and the call records are in the same format within pools 128. Inaddition, distribution module 102 arranges the call records within pools128 so that each call record is selectable by its account number.

The call scheduling information provided by scheduling module 122 allowsfor an optimum order to call the call records. Using the call schedulinginformation, distribution module 102 creates hourly indices for pools128 in step 230. The hourly indices allow for pools 128 to takeadvantage of the fact that the call order and call priority of each callrecord changes based upon the time of day. For example, a call recordmight be scheduled to be the first call at 8:00 AM and if notsuccessfully called at 8:00 AM then rescheduled to be the tenth callmade at 6:00 PM. There is a hourly index created for each hour of thecalling day and the hourly indices are shown in step 232. Distributionmodule 102 creates an index for each hour for each pool 128.

In addition to the hourly indices, distribution module 102 also createsan immediate index and an overflow index. The immediate index containscall records that are always the first to be called at the beginning ofevery hourly index. The call records within the immediate index allowreal time call record insertion based upon previous call attempts andare often call records that resulted in no contact when called the firsttime. Call records contained in the overflow index are call recordswhich were not scheduled to be called or call records that do not havecall scheduling information.

Once the call records are arranged into pools 128 and the hourly indicesare created, the process of transferring the call records from pools 128to queues 130 begins. In step 234, distribution module 102 selects thecall records contained in the immediate index. Distribution module 102also removes any call records that are unavailable to be called andmarks the call records as unavailable in step 236. In step 238,distribution module 102 determines if it is ready to transfer the callrecords from pools 128 to queues 130 for this hour and if there are asufficient number of call records to be transferred from the immediateindex to allow for fifteen, thirty, sixty minutes, or an appropriateamount of time for calling. If there are sufficient call records, thenin step 239, distribution module 102 transfers the call records from thepool immediate index to queues 130.

If there are not enough call records in the immediate index, then instep 240 distribution module 102 selects call records from theappropriate hourly index. These additional call records in combinationwith call records from the immediate index will allow for fifteen,thirty, sixty minutes, or an appropriate amount of time for calling. Instep 242, distribution module 102 removes any call records unavailableto be called and marks the call records as unavailable. Distributionmodule 102 then transfers the call records from the immediate index andthe appropriate hourly index to queues 130 in step 239.

In step 244, distribution module 102 transfers queues 130 containing thecall records to dialing devices 108. After queues 130 are transferred todialing devices 108, in step 246 dialing devices 108 begin calling thecall records.

Referring to FIG. 4b, as dialing devices 108 call the call records,distribution module 102 monitors dialing devices 108 and queues 130 forwhen it is time to send the next hourly index of call records from pools128 to queues 130 in step 248. In determining when to send the nexthourly index, distribution module 102 cannot start morning hour queuesbefore the actual hour of the hourly index and must stop evening hourqueues before the hourly index hour expires. For instance, the poolmorning hourly index for 10:00 AM cannot be sent from pools 128 toqueues 130 before 10:00 AM and the evening hourly index for 7:00 PM muststop calling at 8:00 PM. This is in part to due to telemarketingregulations that regulate the times of day that telemarketing calls maybe placed.

If in step 248 it is time for the next hourly index, then in step 250distribution module 102 selects the next hourly index to be called andbegins the process of transferring the call records from the appropriatehourly index to queues 130. The process of selecting the next hourlyindex repeats steps 234 through 244 by first taking call records fromthe immediate index and adding call records from the appropriate hourlyindex as explained above.

If in step 248 it is not time for the next hour, then distributionmodule 102 determines queue depth and the time to go in step 252. Queuedepth is the amount of call records remaining to be called in the queuewhile time to go is the amount of time remaining in the hour for thehourly index. In step 254 if the depth is not too low and the time to gois not too short so that there are a sufficient amount of call recordsto call for the remaining time left in the hour, then additional callrecords are not needed in queue 130. So in step 256, the call attemptresults regarding a right or wrong party contact are uploaded fromdialing devices 108 and sent back to distribution module 102 in step258. The process then returns to step 248 to determine if it is time forthe next hour.

If in step 254 distribution module 102 determines that the depth is toolow or the time to go is too short, then in step 260 distribution module102 calculates the number of call records needed to finish out the hourfor the hourly index. In step 262, distribution module 102 selectsadditional call records to call by repeating steps 234 through 239 aboveand transferring the call records from the pools 128 to queues 130 instep 264 so that dialing devices 108 do not sit idle but finish out thehour placing telephone calls. The process then returns to step 248 todetermine if it is time for the next hour.

Although the present invention has been described in detail, it shouldbe understood that various changes, substitution, and alterations can bemade hereto without parting from the spirit and scope of the inventionas defined by the appended claims.

What is claimed is:
 1. A system for distributing outbound telephonecalls, the system comprising: one or more dialing devices, eacha dialingdevice associated with plurala plurality of agents and operable, whereinthe dialing device is configured to receive a plurality of call recordsassociated with a campaign and to provide a plurality of telephone callsto the pluralplurality of agents associated with the dialing device; anda distribution module server interfaced with at least one of the dialingdevices the dialing device, the distribution module server having aplurality of pools and a plurality of queues, the distribution moduleoperable server configured to place the plurality of call records intothe plurality of pools, transfer a set of call records comprising lessthan all of the plurality of call records from at least the one of theplurality of pools to at least one of the plurality of queues, andtransfer at least the one of the plurality of queues to the at least onedialing device, monitor contact attempt results comprising at least oneof a right party contact, a wrong party contact, a no answer, and adetection of an answering machine associated with the plurality of callrecords to determine that a predetermined number of the less than all ofthe plurality of call records have been contacted by the dialing device,and in response to determining that the predetermined number of the setof call records have encountered at least one of the right partycontact, the wrong party contact, the no answer, and the detection of ananswering machine by the dialing device, automatically transferadditional call records from the plurality of call records from the oneof the plurality of pools to the one of the plurality of queues.
 2. Thesystem of claim 1 wherein the distribution module is further operable totransfer additional call records from the at least one pool to the atleast one queue if the at least one dialing device has contactedpredetermined of the call records.
 3. The system of claim 1, wherein thedistribution module comprises a server that server supports TCP/IP, thedistribution module transferring and is configured to transfer the setof call records to the one of the plurality of queues with TCP/IP. 4.The system of claim 1, wherein the at least one dialing device comprisesa predictive dialer.
 5. The system of claim 1 wherein the distributionmodule is further operable to monitor the at least one dialing device todetermine contact results associated with the call records and totransfer additional call records to the at least one queue based atleast in part on the contact results.
 6. The system of claim 1, whereinthe distribution module server is further operable configured toredistribute the plurality of call records between plural the pluralityof queues based at least in part upon the contact attempt resultsassociated with the set of call records at the at least one dialingdevice.
 7. The system of claim 1 further comprising a scheduling moduleinterfaced with the distribution module, the scheduling module operableto schedule call records for ordered contact attempts by the at leastone dialing device according to one or more factors.
 8. The system ofclaim 1, wherein the distribution module manages call records in pluralpools, the distribution module further operable server is configured totransfer a first subset of the plurality of call records to a queue froma first pool from the plurality of pools and transfers transfer a secondsubset of the plurality of call records to the queue from a second poolfrom the plurality of pools when the first subset of the plurality ofcall records in the first pool are depleted.
 9. A method fordistributing outbound telephone calls, the method comprising:transferring a plurality of call records of a calling campaign to adistribution module server; organizing the plurality of call recordsinto a plurality of pools; transferring less than all of the pluralityof call records from the plurality of pools to a plurality of queues;transferring at least one of a queue from the plurality of queues to atleast one a dialing device, the dialing device having plural associatedagents; and dialing at the dialing device the a set of call records ofthe transferred queue transferred to the queue; to connectconnectingagents associated with the dialing device tousing the set of callrecords contacted by the dialing device; monitoring call attempt resultscomprising at least one of a right party contact, a wrong party contact,a no answer, and a detection of an answering machine of the outboundtelephone calls at the dialing device; communicating the call attemptresults to the server; and automatically distributing additional callrecords to the queue of the dialing device based on at least one of theright party contact, the wrong party contact, the no answer, and thedetection of the answering machine.
 10. The method of claim 9 furthercomprising: monitoring the results of outbound telephone calls at thedialing device; communicating the results to the distribution module;and distributing additional call records to the at least one queue ofthe dialing device based in part on the results.
 11. The method of claim9, wherein organizing the plurality of call calling records at thedistribution module server further comprises: determining a prioritybetween the plurality of call records based on one or more factors; andordering the plurality of call records in the plurality of queues basedon the priority.
 12. The method of claim 11, wherein the priority isbased on the a likelihood of a successful contact for each of theplurality of call record records.
 13. The method of claim 11, whereinthe priority is based on a location associated with each call record ofthe plurality of call records.
 14. The method of claim 9 furthercomprising: uploading a plurality subset of the call attempt resultsfrom the dialing device to the distribution module server; and analyzingthe subset of the call attempt results to determine the a number of callrecords remaining to be called in the at least one queue and a depletionrate at which the dialing device calls the set of call records in the atleast one queue.
 15. The method of claim 14 further comprising:determining a number of additional call records for the at least onequeue based upon the number of call records remaining to be called andthe depletion rate; and distributing the determined number of additionalcall records to the at least one queue.
 16. The method of claim 9further comprising: redistributing the less than all of the plurality ofcall records between plural the plurality of queues based on the callattempt results associated with each of plural dialing devices thedialing device.
 17. The method of claim 9, wherein transferring at leastone of the queues the queue to at least one the dialing device furthercomprises: transferring plural queues to plural dialing devices; lockingthe set of call records to each dialing device the dialing device;creating a plurality of contingency files file specific for each thedialing device; and updating the contingency files file with the callattempt results.